﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Lola.Entidades;

namespace Lola.Servicio
{
    public static class Micros
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="galpon"></param>
        /// <param name="sector"></param>
        /// <returns></returns>
        public static List<DTO.dtoMicro> getMicrosenSectorDTO(String galpon, String sector)
        {
            List<DTO.dtoMicro> resultado = new List<DTO.dtoMicro>();
            foreach (eMicro eg in eMicro.obtenerMicrosporSector(sector, galpon))
            {
                resultado.Add(eg.getMicroDTO());
            }
            return resultado;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="galpon"></param>
        /// <param name="sector"></param>
        /// <returns></returns>
        internal static List<eMicro> getMicrosenSector(String galpon, String sector)
        {
            return eMicro.obtenerMicrosporSector(sector, galpon);
        }

        /// <summary>
        /// Obtiene todos los micros de la base
        /// </summary>
        /// <param name="galpon"></param>
        /// <param name="sector"></param>
        /// <returns></returns>
        internal static List<eMicro> getMicros()
        {
            return eMicro.obtenerMicros();
        }

        /// <summary>
        /// Devuelve dto para la vista
        /// </summary>
        /// <param name="galpon"></param>
        /// <param name="sector"></param>
        /// <returns></returns>
        public static List<DTO.dtoMicro> getMicrosDTO()
        {
            List<DTO.dtoMicro> resultado = new List<DTO.dtoMicro>();
            foreach (eMicro eg in eMicro.obtenerMicros())
            {
                resultado.Add(eg.getMicroDTO());
            }
            return resultado;
        }

        /// <summary>
        /// Devuelve los micros en un sector.
        /// </summary>
        /// <param name="galpon"></param>
        /// <param name="sector"></param>
        /// <returns></returns>
        public static List<DTO.Grilla.dtoSectorMicro> getMicrosDTOenSector(String galpon, String sector)
        {
            return eInformeSector.obtenerMicrosenSectorDTO(galpon, sector);

        }

        /// <summary>
        /// 
        /// Devuelve todos los micros disponibles para ingresar a los galpones
        /// </summary>
        /// <returns></returns>
        public static List<DTO.Grilla.dtoMicroGrilla> getMicrosDisponibles()
        {
            return eMicro.getMicrosDisponibles();
        }

        /// <summary>
        /// Devuelve los micros que estan disponibles para ingresar a un sector.
        /// </summary>
        /// <param name="galpon"></param>
        /// <param name="sector"></param>
        /// <returns></returns>
        public static List<DTO.Grilla.dtoMicroGrilla> getMicrosDisponiblesParaSector(String galpon, String sector)
        {
            return eMicro.getMicrosDisponiblesParaSector(galpon, sector);
        }

        /// <summary>
        /// Registra el ingreso de una unidad a un sector
        /// </summary>
        /// <param name="galpon"></param>
        /// <param name="sector"></param>
        /// <param name="codigoServicio"></param>
        public static void RegistrarIngresoASector(String galpon, String sector, String codigoServicio)
        {
            eInformeSector.RegistrarIngresoASector(galpon, sector, codigoServicio);
        }

        /// <summary>
        /// Registra la salida de sector de un micro
        /// </summary>
        /// <param name="galpon"></param>
        /// <param name="sector"></param>
        /// <param name="codigoServicio"></param>
        public static void RegistrarSalidadeSector(String galpon, String sector, String codigoServicio)
        {
            eInformeSector.RegistrarSalidadeSector(galpon, sector, codigoServicio);
        }

        internal static List<DTO.Grilla.dtoGrillaTrafico> obtenerMicrosenGalponTrafico(string galpon)
        {
            return eMicro.obtenerMicrosenGalponTrafico(galpon);
        }
    }
}
